#!/bin/bash
#Encargado de instalar todo.
###############################################
#Hecho por Tomás Reale
#( con ayuda de Pablo Angelani )
###############################################

function ObtenerVersionDePerl {
	local version=`perl -v | grep -o 'v[0-9]*\.[0-9]*\.[0-9]*'`
	echo $version
	return 0
}

function ActualizarLog {
	if [ -f "$CONFLOG" ]; then
		cat "$LOGDIR/InstalaV5.$LOGEXT" >> "$CONFLOG"
		rm "$LOGDIR/InstalaV5.$LOGEXT"
	else
		mv "$LOGDIR/InstalaV5."* "$CONFDIR/InstalaV5.$LOGEXT"

	fi
	return 0
}

function ImprimirPerlError {
	./LoguearV5.sh -s -c "InstalaV5" -m "TP S07508 Segundo Cuatrimestre 2012. Tema V Copyright (c) Grupo 09" -t SE
	./LoguearV5.sh -s -c "InstalaV5" -m "9" -t SE
	./LoguearV5.sh -s -c "InstalaV5" -m "Efectue su instalacion e intentelo nuevamente" -t SE
	./LoguearV5.sh -s -c "InstalaV5" -m "8" -t SE
	ActualizarLog
	return 0
}
#Devuelve 0 si Perl esta instalado y su version es mayor (o igual ) a 5
#Devuelve 1 si Perl esta instalado y su version es menor a 5
#Devuelve 2 si Perl NO esta instalado
#Devuelve todo por "standar output", asi que usarlo asi=> ret=$(VerificarPerl)
function VerificarPerl {
#checkeo si existe perl, y si su version es correcta
which perl &>/dev/null
if [ $? -eq 0 ]; then
	local version=`perl -v | grep -o 'v[0-9]*\.[0-9]*\.[0-9]*'`
	local numero=`echo $version | sed 's/^v\([0-9]\).*$/\1/'`
	if [ $numero -ge 5 ]; then
		echo "0"
		else
		echo "1"
	fi
else
	echo "2"
fi
return 0
}

#Muestra todo lo seteado ( guardado en las variables que se usan para instalar el programa )
function ImprimirSeteoDeInstalacion {
		./LoguearV5.sh -s -c "InstalaV5" -m "TP SO7508 Segundo Cuatrimestre 2012. Tema V Copyright (c) Grupo 09" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Libreria del Sistema:$CONFDIR" -t I
#		./LoguearV5.sh -s -c "InstalaV5" -m "$CONFDIR/" -t I			#
		./LoguearV5.sh -s -c "InstalaV5" -m "Ejecutables:${ArrayDIR[0]}" -t I
#		./LoguearV5.sh -s -c "InstalaV5" -m "${ArrayDIR[0]}/" -t I		#
		./LoguearV5.sh -s -c "InstalaV5" -m "Archivos Maestros:${ArrayDIR[1]}" -t I
#		./LoguearV5.sh -s -c "InstalaV5" -m "${ArrayDIR[1]}/" -t I		#
		./LoguearV5.sh -s -c "InstalaV5" -m "Directorio de arribo de archivos externos:${ArrayDIR[2]}" -t I
#		./LoguearV5.sh -s -c "InstalaV5" -m "${ArrayDIR[2]}/" -t I		#
		./LoguearV5.sh -s -c "InstalaV5" -m "Archivos externos aceptados:${ArrayDIR[3]}" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Archivos externos rechados:${ArrayDIR[4]}" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Archivos procesados:${ArrayDIR[5]}" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Reportes de salida:${ArrayDIR[6]}" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Logs de auditoria del Sistema:$LOGDIR" -t I
		logs=`ls "$LOGDIR"`
		for i in ${logs[@]}; do
			./LoguearV5.sh -s -c "InstalaV5" -m "$i" -t I			
		done
		./LoguearV5.sh -s -c "InstalaV5" -m "$LOGSIZE" -t I
		return 0
}
#Si todo esta instalado bien, simplemente muestra como quedo el sistema
function ImprimirEstadoSistemaInstalado {
		ImprimirSeteoDeInstalacion
		./LoguearV5.sh -s -c "InstalaV5" -m "Estado de instalación: COMPLETA" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Proceso de instalación : Cancelado" -t I	
		return 0
}

#Si faltan componentes, muestra lo que esta instalado y lo que falta instalar
#OJO corregir esto
#http://stackoverflow.com/questions/5859012/bash-script-with-ls-variable

function ImprimirEstadoSistemaMalInstalado {
			./LoguearV5.sh -s -c "InstalaV5" -m "TP SO7508 Segundo Cuatrimestre 2012. Tema V Copyright (c) Grupo 09" -t I
			./LoguearV5.sh -s -c "InstalaV5" -m "Componentes Existentes:" -t I
			./LoguearV5.sh -s -c "InstalaV5" -m "Ejecutables:${ArrayDIR[0]}" -t I

			if [ $IndMaxVecArrayEjecutablesEncontrados -ge 0 ]; then
				for i in ${ArrayEjecutablesEncontrados[@]}; do
					./LoguearV5.sh -s -c "InstalaV5" -m "$i"  -t I
				done
			fi		
			./LoguearV5.sh -s -c "InstalaV5" -m "Archivos Maestros:${ArrayDIR[1]}" -t I

			./LoguearV5.sh -s -c "InstalaV5" -m "Componentes faltantes:" -t I
			
			if [ $IndMaxVecArrayEjecutablesNoEncontrados -ge 0 ]; then
			for i in $( eval echo {0..$IndMaxVecArrayEjecutablesNoEncontrados} )
				do
				./LoguearV5.sh -s -c "InstalaV5" -m "${ArrayEjecutablesNoEncontrados[$i]}" -t I	
				done
			fi

			if [ $IndMaxVecArrayCarpetasFaltantes -ge 0 ]; then
				for i in $( eval echo {0..$IndMaxVecArrayCarpetasFaltantes} )
					do
					./LoguearV5.sh -s -c "InstalaV5" -m "${ArrayCarpetasFaltantes[$i]}" -t I					
					done
			fi
				./LoguearV5.sh -s -c "InstalaV5" -m "Estado de la instalacion: INCOMPLETA" -t I
#				./LoguearV5.sh -s -c "InstalaV5" -m "Desea completar la instalacion?(Si-No)" -t I	
			return 0
}

function DetectarElementosInstalados {
	if [ -d "${ArrayDIR[0]}" ]; then
	ArrayCarpetasEncontradas=( "${ArrayDIR[0]}" ) 
	#------------------------------------------------------------------
		for n in $( eval echo {0..$IndiceMaxNomEjecutables} ) 
			do
				if [ -e "${ArrayDIR[0]}/${NombresEjecutables[$n]}" ]; then
					ArrayEjecutablesEncontrados=( "${ArrayEjecutablesEncontrados[@]}" "${NombresEjecutables[$n]}")
					#echo "${ArrayDIR[0]}/${NombresEjecutables[$n]} : instalado"
				else
					ArrayEjecutablesNoEncontrados=( "${ArrayEjecutablesNoEncontrados[@]}" "${NombresEjecutables[$n]}")
					#echo "${NombresEjecutables[$n]}  : no instalado"
				fi
			done
	#------------------------------------------------------------------
	else
		ArrayCarpetasFaltantes=( "${ArrayCarpetasFaltantes[@]}"  "${ArrayDIR[0]}" )
		ArrayEjecutablesNoEncontrados=( "${NombresEjecutables[@]}" )
		#echo "no existe ${ArrayDIR[0]}"
		#echo "No hay ningun ejecutable instalado"
	fi
#------------------------------------------------------------------	
	if [ -d "${ArrayDIR[1]}" ]; then
	ArrayCarpetasEncontradas=( "${ArrayCarpetasEncontradas[@]}" "${ArrayDIR[1]}" )
		if [ -f "${ArrayDIR[1]}/patrones" ]; then
			#echo "${ArrayDIR[1]}/patrones"
			ArrayCarpetasEncontradas=("${ArrayCarpetasEncontradas[@]}" "${ArrayDIR[1]}/patrones" )
		else
			#echo "no existe ${ArrayDIR[1]}/patrones"
			ArrayCarpetasFaltantes=( "${ArrayCarpetasFaltantes[@]}" "${ArrayDIR[1]}/patrones" )
		fi
		#--------------------------------------------
		if [ -f "${ArrayDIR[1]}/sistemas" ]; then
#			#echo "${ArrayDIR[1]}/sistemas"
			ArrayCarpetasEncontradas=("${ArrayCarpetasEncontradas[@]}" "${ArrayDIR[1]}/sistemas" )
		else
#			#echo "no existe ${ArrayDIR[1]}/sistemas"
			ArrayCarpetasFaltantes=( "${ArrayCarpetasFaltantes[@]}" "${ArrayDIR[1]}/sistemas" )
		fi
		#--------------------------------------------
		else
			ArrayCarpetasFaltantes=( "${ArrayCarpetasFaltantes[@]}" "${ArrayDIR[1]}" )
			#echo "no existe ${ArrayDIR[1]}"
	fi

	for z in $( eval echo {2..$IndiceMaxVect} ) 	#el resto es verificar directorios
		do
			if [ -d "${ArrayDIR[$z]}" ]; then
				#echo "existe ${ArrayDIR[$z]}"
				ArrayCarpetasEncontradas=("${ArrayCarpetasEncontradas[@]}" "${ArrayDIR[$z]}" )
			else
				#echo "no existe ${ArrayDIR[$z]}"
				ArrayCarpetasFaltantes=( "${ArrayCarpetasFaltantes[@]}" "${ArrayDIR[$z]}" )
			fi
		done	
	return 0
}

function ImprimirQueSeNecesitaParaDefinirInstalacion {
	./LoguearV5.sh -s -c "InstalaV5" -m "Directorio de Trabajo para la instalacion:$GRUPO" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "$GRUPO" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Libreria del sistema:$CONFDIR" -t I I
	./LoguearV5.sh -s -c "InstalaV5" -m "Estado de la instalacion: PENDIENTE" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Para completar la instalacion UD. debera:" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de instalacion de los ejecutables" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de instalacion de los archivos maestros" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el espacio minimo libre para el arribo de archivos externos" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de instalacion de los archivos externos" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de grabacion de los archivos externos rechazados" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de grabacion de los logs de auditoria" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir la extension y tamaño maximo para los archivos de log" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Definir el directorio de grabacion de los reportes de salida" -t I	
	echo "";
	return 0
}

#es importante mejorar esta funcion para tener en cuenta usuarios maleficos
function PedirDirectorios {
#Aca hay que hacer un parseo de lo que se lee, ya sea nombre "simple" o ruta absoluta
#Obviamente en una funcion aparte
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de instalacion de los ejecutables (${ArrayDIR[0]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[0]="$input"
	fi;
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de instalacion de los Archivos Maestros (${ArrayDIR[1]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[1]="$input"
	fi;
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de instalacion de los Archivos Externos (${ArrayDIR[2]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[2]="$input"
	fi;
	
	flagRetry=1
	while [ $flagRetry -eq 1 ]; do
		DATASIZE=100
		./LoguearV5.sh -s -c "InstalaV5" -m "Defina el espacio minimo libre para el arribo de archivos externos en MBytes ($DATASIZE)" -t I
		
		input=
		while [[ !  $input =~ ^[0-9]+\.?[0-9]+$ ]] && [[ !  $input =~ ^[0-9]+,?[0-9]+$ ]]
			do
			read input
			if [ -z "$input" ];then
				input="$DATASIZE"
			fi;
			done
		input=`echo $input | sed s/,/./`
		DATASIZE="$input"
		#echo $DATASIZE
		
		#http://stackoverflow.com/questions/8110530/check-disk-space-for-current-directory-in-bash
		EspacioDisponible=`df -m "." | tail -n 1 |awk '{print $4}'`
		#echo $EspacioDisponible
		#dif=`expr $EspacioDisponible - $DATASIZE`
		#dif=$(echo "$EspacioDisponible-$DATASIZE" | bc)
		#echo $dif

		ret=$(echo "$EspacioDisponible < $DATASIZE"|bc)
		if [  $ret -eq 1 ]; then
			./LoguearV5.sh -s -c "InstalaV5" -m "6" -t E
			./LoguearV5.sh -s -c "InstalaV5" -m "Espacio disponible: $EspacioDisponible Mbytes" -t E
			./LoguearV5.sh -s -c "InstalaV5" -m "Espacio requerido: $DATASIZE Mbytes." -t E	
			./LoguearV5.sh -s -c "InstalaV5" -m "Cancele la instalacion e intentelo mas tarde o vuelva a intentarlo con otro valor (Cancel-Retry)" -t E	
			read Flag
			if [ "$Flag" != "Retry" ]; then exit 8
			fi
			else
			flagRetry=0
		fi
	done
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de instalacion de los archivos externos aceptados (${ArrayDIR[3]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[3]="$input"
	fi;
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de instalacion de los archivos externos rechazados (${ArrayDIR[4]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[4]="$input"
	fi;
	
	#Ojito , por tramposo
	if [ "${ArrayDIR[3]}" = "${ArrayDIR[4]}" ]; then
		ArrayDIR[4]="$GRUPO/${ArrayDirDefault[4]}"
	fi
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de grabacion de los archivos procesados (${ArrayDIR[5]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[5]="$input"
	fi;
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Los logs de este sistema se grabaran en: $LOGDIR" -t I
	./LoguearV5.sh -s -c "InstalaV5" -m "Ingresar la extensión de los archivos de log($LOGEXT):" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		LOGEXT="$input"
	fi
	./LoguearV5.sh -c "InstalaV5" -m "La extensión de los archivos de log es: $LOGEXT" -t I
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el tamaño maximo para los archivos .$LOGEXT en Kbytes ($LOGSIZE)" -t I
		input=
		while [[ !  $input =~ ^[0-9]+\.?[0-9]+$ ]] && [[ !  $input =~ ^[0-9]+,?[0-9]+$ ]] 
			do
			read input
			if [ -z "$input" ];then
				input="$LOGSIZE"
			fi;
			done
		input=`echo $input | sed s/,/./`
		LOGSIZE="$input"
	
	./LoguearV5.sh -s -c "InstalaV5" -m "Defina el directorio de grabacion de los reportes de salida (${ArrayDIR[6]})" -t I
	input=
	read input
	if [ ! -z "$input" ]; then
		ArrayDIR[6]="$input"
	fi;
	return 0
}

#guarda todas las variables que se setearon en la configuracion de la instalacion
function PersistirDatosDeConfiguracion {
	FECHA=$(date +%Y/%m/%d//%H:%M:%S);
	USER=$(whoami)
	FechaSepUser="$FECHA=$USER"
	echo "GRUPO=$GRUPO=$FechaSepUser" > "$ArchivoConfiguracion"
	echo "CONFDIR=$CONFDIR=$FechaSepUser" >> "$ArchivoConfiguracion"
	k=0
	for elem in $( eval echo {0..$IndiceMaxVect} )
		do
			echo "${ArrayNamesDIR[$k]}=${ArrayDIR[$k]}=$FechaSepUser" >> "$ArchivoConfiguracion"
			k=`expr $k + 1`
		done
	echo "LOGDIR=$LOGDIR=$FechaSepUser" >> "$ArchivoConfiguracion"
	echo "LOGEXT=$LOGEXT=$FechaSepUser" >> "$ArchivoConfiguracion"	
	echo "LOGSIZE=$LOGSIZE =$FechaSepUser" >> "$ArchivoConfiguracion"		
	echo "DATASIZE=$DATASIZE=$FechaSepUser" >> "$ArchivoConfiguracion"	
	echo "SECUENCIA1=0=$FechaSepUser" >> "$ArchivoConfiguracion"	
	echo "SECUENCIA2=0=$FechaSepUser" >> "$ArchivoConfiguracion"
	return 0	
}

#Se fija si se encuentran todos los archivos necesarios para realizar la instalación
#De no ser asi, imprime por pantalla que es lo que falta, y cierra.
function CheckearInstaladorNoCorrupto {
	flagINST=0
for element in ${NombresEjecutables[@]}
	do
		if [ ! -e "$element" ]; then
			echo "Falta $element en la carpeta del instalador"
			flagINST=1
		fi
	done

texto=( "patrones" "sistemas" "coderror.dat")

for i in ${texto[@]}
	do
		if [ ! -e "$i" ]; then
		echo "Falta el archivo $i en la carpeta del instalador"
		flagINST=1
		fi
	done

if [ $flagINST -eq 1 ]; then
	echo "Instalador corrupto"
	exit 0
fi
	
}
#############################################################################################################
#COMIENZO DE SCRIPT
#############################################################################################################
#Los sig valores se setean segun donde se ejecute el installer
GRUPO="$PWD"
CONFDIR="$GRUPO/confdir"
mkdir -p "$GRUPO/confdir"
LOGDIR="$GRUPO/logdir"
export GRUPO
#-----------------------------------------------------------------------------------------------
declare -r ArchivoConfiguracion="$CONFDIR/InstalaV5.conf"
declare -a ArrayNamesDIR=( "BINDIR" "MAEDIR" "ARRIDIR" "ACEPDIR" "RECHDIR" "PROCDIR" "REPODIR" )
declare -a ArrayDirDefault=( "/bin" "/mae" "/arribos" "/aceptados" "/rechazados" "/procesados" "/reportes " )
declare -a NombresEjecutables=( "BuscarV5.sh" "ListarV5.pl" "ListarUI.pl" "LoguearV5.sh" "MirarV5.sh" "MoverV5.sh" "IniciarV5.sh" "DetectaV5.sh" "StartD.sh" "StopD.sh" )
declare -r IndiceMaxNomEjecutables=`expr ${#NombresEjecutables[@]} - 1`
#------------ArrayDir se guardan las direcciones propiamente dichas-----------------------------
declare -a ArrayDIR
declare -r IndiceMaxVect=`expr ${#ArrayDirDefault[@]} - 1`
#-----------------------------------------------------------------------
CheckearInstaladorNoCorrupto
#-----------------------------------------------------------------------
#http://www.linuxquestions.org/questions/programming-9/using-a-variable-to-control-a-bash-for-loop-737458/
#http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html
if [ ! -f "$ArchivoConfiguracion" ]; then
	#echo "InstalarV5.conf no existe"
	#Los siguientes son valores default
	for i in $( eval echo {0..$IndiceMaxVect} ) 
		do
		ArrayDIR[$i]="$GRUPO${ArrayDirDefault[$i]}"
		#echo "${ArrayDIR[$i]}"
		done
	DATASIZE=100
	LOGSIZE=400
	LOGEXT="log"
	else
		#echo "InstalarV5.conf existe"
	#Recupero todas las rutas guardadas en InstalarV5.conf
	#si no encuentra la entrada...setea todo "DEFAULT"
	for i in $( eval echo {0..$IndiceMaxVect} ) 
		do
		ArrayDIR[$i]=`cat "$ArchivoConfiguracion"|grep "${ArrayNamesDIR[$i]}"|sed 's/^[^=]*=\([^=]*\)=.*$/\1/'`
		#echo ${ArrayDIR[$i]}
		if [ -z "${ArrayDIR[$i]}" ]; then
			ArrayDIR[$i]="$GRUPO${ArrayDirDefault[$i]}"
			#echo ${ArrayDIR[$i]}
		fi
		done
	DATASIZE=`cat "$ArchivoConfiguracion"|grep "DATASIZE" |sed 's/^[^=]*=\([^=]*\)=.*$/\1/'`
	LOGSIZE=`cat "$ArchivoConfiguracion"|grep "LOGSIZE" |sed 's/^[^=]*=\([^=]*\)=.*$/\1/'`
	LOGEXT=`cat "$ArchivoConfiguracion"|grep "LOGEXT" |sed 's/^[^=]*=\([^=]*\)=.*$/\1/'`
		if [ -z "$DATASIZE" ]; then
			DATASIZE=100
		fi
		if [ -z "$LOGSIZE" ]; then
			LOGSIZE=400
		fi
		if [ -z "$LOGEXT" ]; then
			LOGEXT="log"
		fi
		export LOGEXT
		CONFLOG="$GRUPO/confdir/InstalaV5.$LOGEXT"	
fi

declare -a ArrayEjecutablesEncontrados
declare -a ArrayEjecutablesNoEncontrados
declare -a ArrayCarpetasEncontradas
declare -a ArrayCarpetasFaltantes
#Ahora , debo verificar si existen los componentes de los que recupere rutas
DetectarElementosInstalados
#Aca se termino la verificacion

./LoguearV5.sh -s -c "InstalaV5" -m "Comando InstalaV5 Inicio Ejecución" -t I

declare -r IndMaxVecArrayEjecutablesEncontrados=`expr ${#ArrayEjecutablesEncontrados[@]} - 1`
declare -r IndMaxVecArrayEjecutablesNoEncontrados=`expr ${#ArrayEjecutablesNoEncontrados[@]} - 1`
declare -r IndMaxVecArrayCarpetasFaltantes=`expr ${#ArrayCarpetasFaltantes[@]} - 1`
declare -r IndMaxVecArrayCarpetasEncontradas=`expr ${#ArrayCarpetasEncontradas[@]} - 1`

FlagInstalacionAmedias=0			
if [ -f "$ArchivoConfiguracion" ]; then
	#echo "archivo config existe"
	#echo "Ejecutables encontrados ${#ArrayEjecutablesEncontrados[@]}"
	#echo "Ejecutables No Encontrados ${#ArrayEjecutablesNoEncontrados[@]}"
	#echo "Cantidad ejecutables ${#NombresEjecutables[@]}"
	#echo "Carpetas faltantes ${#ArrayCarpetasFaltantes[@]}"
	
	if [ ${#ArrayEjecutablesEncontrados[@]} -eq ${#NombresEjecutables[@]} -a ${#ArrayCarpetasFaltantes[@]} -eq 0 ]; then	
	#TODO instalado perfectamente
		ImprimirEstadoSistemaInstalado
		ActualizarLog
		exit 0
	else
#		ImprimirEstadoSistemaMalInstalado
#		SEGUIRINSTALACION="def"
#		while [ "$SEGUIRINSTALACION" != "Si" -a "$SEGUIRINSTALACION" != "No" ]; do
		#echo "Desea seguir con la instalacion?"
#		read SEGUIRINSTALACION
#		done
#		./LoguearV5.sh -s -c "InstalaV5" -m "$SEGUIRINSTALACION" -t I
#		if [ "$SEGUIRINSTALACION" == "No" ]; then
#			exit 0
#		fi
		#go a la instalacion propiamente dicha, sin pedir directorios
		#Se sigue con la instalacion, no se permite modificar valores
		FlagInstalacionAmedias=1
	fi
fi
######################################################################################3
#Instalacion Convencional
ret=$(VerificarPerl)
if [ $ret -eq 0 ]; then 
#echo "Perl bien instalado y con version superior (o igual) a 5"
	./LoguearV5.sh -s -c "InstalaV5" -m "TP S07508 Segundo Cuatrimestre 2012. Temva V Copyright (c) Grupo 09" -t I
	versionDePerl=$(ObtenerVersionDePerl)
	./LoguearV5.sh -s -c "InstalaV5" -m "Perl : $versionDePerl" -t I
fi
if [ $ret -eq 1 ]; then 
#echo "Perl esta instalado, pero su version es menor a 5"
	ImprimirPerlError
	exit 5
fi
if [ $ret -eq 2 ]; then 
#echo "Perl NO esta instalado"
	ImprimirPerlError
	exit 6
fi

if [ $FlagInstalacionAmedias -eq 0 ]; then
	#Brindar Informacion de la instalacion
	ImprimirQueSeNecesitaParaDefinirInstalacion
	#A continuacion defino los directorios de todo
	ans="def"
	while [ "$ans" != "Si" ]; do
		ans="def"
		PedirDirectorios
		./LoguearV5.sh -s -c "InstalaV5" -m "Estado de la instalacion:LISTA" -t I
		./LoguearV5.sh -s -c "InstalaV5" -m "Los datos ingresados son correctos?(Si-No)" -t I
		while [ "$ans" != "Si" -a "$ans" != "No" ]
			do
				read ans
				./LoguearV5.sh -c "InstalaV5" -m "$ans" -t I
			done	
	done
else
ImprimirEstadoSistemaMalInstalado      
	#sale si answer es "Si"
fi

confirma="def"
while [ "$confirma" != "Si" -a "$confirma" != "No" ]; do
	./LoguearV5.sh -s -c "InstalaV5" -m "Iniciando instalacion.Esta Ud. seguro?(Si-No)" -t I
	read confirma
	done
	./LoguearV5.sh -c "InstalaV5" -m "$confirma" -t I
	if [ "$confirma" = "No" ]; then 
		exit 0
	fi

#SI se llego aca, se esta instalando
	./LoguearV5.sh -s -c "InstalaV5" -m "Creando estructuras de directorio" -t I

#ExpandirNombresDeDirCortos--------------------------------------------
	dirAct=`echo $PWD | cut -c 1-10`
	for i in $( eval echo {0..$IndiceMaxVect} ) 
		do
			if [[ ${ArrayDIR[$i]} != $dirAct* ]]; then 
				if [[ ${ArrayDIR[$i]} =~ ^[\.\~] ]]; then
					tmp=`echo ${ArrayDIR[$i]} | cut -c1 --complement`
					ArrayDIR[$i]=$tmp;
				fi;
				if [[ ${ArrayDIR[$i]} =~ ^\/ ]]; then
					tmp=`echo ${ArrayDIR[$i]} | cut -c1 --complement`
					ArrayDIR[$i]=$tmp;
				fi;
				ArrayDIR[$i]="$PWD/${ArrayDIR[$i]}"
			fi;
		done
#----------------------------------------------------------------------
for i in $( eval echo {0..$IndiceMaxVect} )
	do
	mkdir -p "${ArrayDIR[$i]}"
	done

#mkdir -p "${ArrayDIR[1]}/patrones"
#mkdir -p "${ArrayDIR[1]}/sistemas"

#mover archivos maestros
./LoguearV5.sh -s -c "InstalaV5" -m "Instalando Archivos Maestros" -t I
#TodoLoContenidoEnInstalador=`ls "$GRUPO"/`
#Patrones=`echo "$TodoLoContenidoEnInstalador" | grep -o patrones`
mv "patrones" "${ArrayDIR[1]}/"
#Sistemas=`echo "$TodoLoContenidoEnInstalador" | grep -o sistemas`
mv "sistemas" "${ArrayDIR[1]}/"

#muevo los ejecutables y les doy permiso para ejecutarse
for elem in ${NombresEjecutables[@]}
	do
		mv $elem "${ArrayDIR[0]}"	
		chmod +x "${ArrayDIR[0]}/$elem"
	done

#guardar todas las variables seteadas
"${ArrayDIR[0]}"/LoguearV5.sh -s -c "InstalaV5" -m "Actualizando la configuracion del sistema" -t I
PersistirDatosDeConfiguracion
#fin
"${ArrayDIR[0]}"/LoguearV5.sh -s -c "InstalaV5" -m "Instalacion Concluida" -t I
ActualizarLog
 exit 0
 
 #TODOLIST
 #debbugear ... esta es una tarea que nunca termina ;)
